//
//  M2DDeviceContext.h
//  Morpheus2D
//
//  Created by Vivek Seetharaman on 6/9/12.
//  Copyright 2012 __MyCompanyName__. All rights reserved.
//

#ifndef Morpheus2D_M2DDeviceContext_h
#define Morpheus2D_M2DDeviceContext_h

#include "DeviceContextParams.h"

namespace morpheus2d
{
    namespace graphics
    {
        //! The Device Context encapsulates the window, window events and the Renderer
        /**
         *  Create an instance of this class to start rendering to the created window.
         */
        class DeviceContext
        {
        public:
            DeviceContext(  const DeviceContextParams& );        
            
            ~DeviceContext();
            
            virtual bool CreateWindow() = 0;
            
            virtual void CreateRenderer() = 0;
            
            //Members
        protected:
            DeviceContextParams deviceContextParams;
            //ISceneManager* pSceneManager;
            //IRenderer*  pRenderer;
            
            
        };
    }
}

#endif
